import { Request, Response } from 'express';

// 模拟翻译函数
const mockTranslate = (text: string, sourceLang: string, targetLang: string): string => {
  // 简单的模拟翻译映射
  const mockTranslations: Record<string, Record<string, Record<string, string>>> = {
    'zh': {
      'en': {
        '你好，世界！': 'Hello, World!',
        '多语言翻译助手': 'Multilingual Translation Assistant',
        '欢迎使用': 'Welcome to',
        '测试': 'Test'
      },
      'ja': {
        '你好，世界！': 'こんにちは、世界！',
        '多语言翻译助手': '多言語翻訳アシスタント',
        '欢迎使用': 'ようこそ',
        '测试': 'テスト'
      }
    },
    'en': {
      'zh': {
        'Hello, World!': '你好，世界！',
        'Multilingual Translation Assistant': '多语言翻译助手',
        'Welcome to': '欢迎使用',
        'Test': '测试'
      }
    }
  };

  // 如果有预定义的翻译，则使用它
  if (mockTranslations[sourceLang]?.[targetLang]?.[text]) {
    return mockTranslations[sourceLang][targetLang][text];
  }

  // 否则生成一个模拟翻译
  const prefix = targetLang === 'en' ? '[EN] ' : 
                targetLang === 'ja' ? '[JA] ' : 
                targetLang === 'ru' ? '[RU] ' : 
                targetLang === 'zh' ? '[ZH] ' : 
                `[${targetLang}] `;
  
  return prefix + text;
};

export const testTranslate = async (req: Request, res: Response) => {
  try {
    const { text, sourceLanguage, targetLanguage } = req.body;
    
    if (!text || !sourceLanguage || !targetLanguage) {
      return res.status(400).json({ 
        error: '缺少必要参数', 
        required: { text: '要翻译的文本', sourceLanguage: '源语言代码', targetLanguage: '目标语言代码' } 
      });
    }

    // 使用模拟翻译而不是真正的API
    const translatedText = mockTranslate(text, sourceLanguage, targetLanguage);
    
    // 模拟延迟，让用户感觉在进行翻译
    setTimeout(() => {
      res.json({
        success: true,
        original: text,
        translated: translatedText,
        sourceLanguage,
        targetLanguage
      });
    }, 800);
  } catch (error) {
    console.error('测试翻译错误:', error);
    res.status(500).json({ error: '翻译过程中发生错误', details: error });
  }
};